﻿// 搜索配置
export default () => {
  // 存储格式化后的字典数据
  let channelDictData = [];

  // 字典数据格式化方法
  const channelDictFormatter = res => {
    const list = Array.isArray(res.data) ? res.data : [];
    channelDictData = list.map(i => ({ label: i.dictLabel, value: i.dictValue }));
    return channelDictData;
  };

  const searchOption = ref({
    formConfig: {
      channelCode: {
        label: "经营渠道",
        component: "el-select",
        dicUrl: "/support-backend/dict/listChildrenByDictCode",
        dicQuery: { dictCode: "qingyun.mini.channel" },
        dicFormatter: channelDictFormatter,
        dicProps: { label: "label", value: "value" },
      },
      version: {
        label: "版本号",
      },
      // 新增时间
      createTime: {
        label: "新增时间",
        component: "el-date-picker",
        type: "daterange",
      },
      // 编辑时间
      updateTime: {
        label: "编辑时间",
        component: "el-date-picker",
        type: "daterange",
      },
      updateName: {
        label: "操作人员",
      },
    },
  });

  // 表格配置
  const tableOption = ref(
    Utils.tools.deleteSearchConfig({
      // 新增弹窗
      addTitle: "新增版本",
      editTitle: "编辑版本",
      // 弹窗宽度
      dialogWidth: "20%",
      // 是否显示编辑按钮
      editBtn: false,
      // 是否显示删除按钮
      delBtn: false,
      // 菜单宽度 单个按钮 52px 按钮容器内边距 8px 例如：4个按钮 = 52 * 4 * 8
      menuWidth: 52 * 3 + 8,
      // 按钮文字配置
      saveBtnText: "确定新增", // 保存按钮文字
      cancelBtn: false,

      // 表格配置
      column: {
        platform: {
          label: "经营渠道",
          span: 24,
          type: "select",
          placeholder: "请选择经营渠道",
          // 使用缓存的字典数据，避免重复请求
          dicData: channelDictData,
          dicProps: { label: "label", value: "value" },
          rules: [{ required: true, message: "请选择经营渠道", trigger: "blur" }],
          // 表格显示格式化
          formatter: row => {
            const platform = channelDictData.find(item => item.value === row.platform);
            return platform ? platform.label : row.platform;
          },
        },
        // 版本号
        version: {
          label: "版本号",
          span: 24,
          placeholder: "请输入版本号",
          rules: [
            { required: true, message: "请输入版本号", trigger: "blur" },
            { max: 10, message: "最长10个字符", trigger: "blur" },
          ],
        },
        // 版本描述
        desc: {
          label: "版本描述",
          placeholder: "请输入版本描述",
          type: "textarea",
          span: 24,
          rules: [
            { required: true, message: "请输入版本描述", trigger: "blur" },
            { max: 100, message: "最长100个字符", trigger: "blur" },
          ],
        },
        // 新增时间
        createTime: {
          label: "新增时间",
          type: "datetime",
          format: "YYYY-MM-DD HH:mm:ss",
          valueFormat: "YYYY-MM-DD HH:mm:ss",
          display: false,
          // sortable: true,
        },
        // 最近编辑时间
        updateTime: {
          label: "最近编辑时间",
          type: "date",
          format: "YYYY-MM-DD",
          valueFormat: "YYYY-MM-DD",
          display: false,
          // sortable: true,
        },
        // 操作人员
        updateName: {
          label: "操作人员",
          display: false,
          // width: 120,
        },
      },
    })
  );
  return { searchOption, tableOption };
};
